//app.js
import {getUserInfo} from "service/User";
import Static from "utils/Static";
import PageExtension from "utils/PageExtension";
App({
    onLaunch: function () {
        wx.login();
        if (!wx.cloud) {
            console.error('请使用 2.2.3 或以上的基础库以使用云能力')
        } else {
            wx.cloud.init({
                env: Static.config.env,
                traceUser: true,
            })
        }
        /*=========页面扩展=========*/
        Page = PageExtension(Page);
        /*=========网络状态监控==========*/
        wx.getNetworkType({ //获取网络状态 无网络提示
            success: function(res) {
                res.networkType === "none" ?  wx.showToast({title: "无网络可用！", icon: "none"}) : null
            }
        });
        wx.onNetworkStatusChange(function (res) { //网络状态监听 网络状态变化提示
            let str = !res.isConnected ? res.networkType + "网络不稳定" : "";
            str ? wx.showToast({title: str, icon: "none"}) : null
        });
        this.getUserInfo(); //获取用户信息
        this.updateApp(); //检测更新
        this.globalData = {}
    },

    /*
    * 获取用户信息
    * */
    getUserInfo: async function () {
        try {
            await getUserInfo();
        } catch (e) {
            console.error(e)
        }
    },

    /*
    * 未处理的 Promise 拒绝事件监听函数
    * */
    onUnhandledRejection: function (e) {
        console.log("========")
        console.error(e)
    },

    /*
     * 页面找不到后 返回首页
     * */
    onPageNotFound(res) {
        wx.reLaunch({url: "/pages/home/index/index"})
    },

    /*
    * 小程序更新检测
    * */
    updateApp: function() { //版本更新
        try {
            if (!wx.canIUse("getUpdateManager")) {return false}
            const updateManager = wx.getUpdateManager();
            updateManager.onCheckForUpdate(function(res) {
                if (res.hasUpdate) { // 请求完新版本信息的回调
                    updateManager.onUpdateReady(function() {
                        wx.showModal({
                            title: "更新提示",
                            content: "新版本已经准备好，是否重启应用？",
                            showCancel: false,
                            success: function(res) {
                                // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                                updateManager.applyUpdate();
                            }
                        })
                    })
                    updateManager.onUpdateFailed(function() {
                        wx.showModal({ // 新的版本下载失败
                            title: "已经有新版本了哟~",
                            content: "新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~",
                        })
                    })
                }
            })
        } catch (e) {
            console.error(e)
        }
    },
})
